Web Development JasmineJS এর সাথে Code Coverage Tools ইন্টিগ্রেশন গাইড ও নোট

246

JasmineJS একটি জনপ্রিয় টেস্টিং ফ্রেমওয়ার্ক যা ব্যবহার করে আপনি আপনার কোডের বিভিন্ন অংশ পরীক্ষা করতে পারেন। তবে, শুধু টেস্ট লেখা না, টেস্টের পূর্ণতা বা code coverage (কোড কভারেজ) যাচাই করাও গুরুত্বপূর্ণ। Code coverage হল সেই পরিমাণ কোড যা আপনার টেস্ট কেসগুলোর মাধ্যমে চালিত হয়েছে এবং যাচাই করা হয়েছে। JasmineJS এর সাথে code coverage tools ইন্টিগ্রেট করলে আপনি জানতে পারবেন যে কোন অংশে টেস্ট যথেষ্ট নয় বা কোন অংশে টেস্ট নেই।

এই টিউটোরিয়ালে আমরা দেখব কীভাবে JasmineJS এর সাথে code coverage tools ইন্টিগ্রেট করা যায়।


Code Coverage Tools কেন গুরুত্বপূর্ণ?

Code coverage tools আপনাকে সাহায্য করে আপনার টেস্ট কভারেজ উন্নত করতে। এই টুলগুলি আপনার টেস্ট স্যুটের মাধ্যমে কতটা কোড পরীক্ষা করা হয়েছে এবং কোন কোডটি অটেস্টেড তা নির্ধারণ করে। Code coverage মেট্রিক্সের মধ্যে প্রধান প্রধান টেস্ট মেট্রিক্স হলো:

  • Statement Coverage: কোডের কতগুলো স্টেটমেন্ট টেস্ট করা হয়েছে।
  • Branch Coverage: কোডের লজিক্যাল ব্রাঞ্চগুলো কতটুকু টেস্ট করা হয়েছে।
  • Function Coverage: কতগুলো ফাংশন টেস্ট করা হয়েছে।

JasmineJS এর সাথে Code Coverage ইন্টিগ্রেশন

JasmineJS এর সাথে code coverage tools ইন্টিগ্রেট করতে সাধারণত Istanbul বা তার আধুনিক সংস্করণ nyc ব্যবহার করা হয়। Istanbul JavaScript এর জন্য একটি শক্তিশালী code coverage টুল, যা আপনাকে কোডের বিভিন্ন অংশের কভারেজ পরিসংখ্যান প্রদান করে।


Step-by-Step: JasmineJS এর সাথে Code Coverage টুল ইন্টিগ্রেট করা

১. প্রাথমিক সেটআপ: JasmineJS ইনস্টল করা

প্রথমে, JasmineJS ইনস্টল করা থাকতে হবে। যদি JasmineJS ইতোমধ্যে ইনস্টল করা না থাকে, তাহলে npm ব্যবহার করে এটি ইনস্টল করুন।

npm install --save-dev jasmine

এবং JasmineJS এর কনফিগারেশন ফাইল তৈরি করুন:

npx jasmine init

২. Istanbul বা NYC ইনস্টল করা

এখন, Istanbul বা nyc টুলটি ইনস্টল করতে হবে। এই টুলটি আপনার টেস্ট রান করার সময় কোড কভারেজ ট্র্যাক করবে।

npm install --save-dev nyc

এটি Istanbul এর আধুনিক সংস্করণ, এবং এটি JasmineJS এর সাথে ভালোভাবে কাজ করে।


৩. Package.json কনফিগার করা

nyc টুলটিকে আপনার package.json ফাইলে কনফিগার করুন। এটি Jasmine এর মাধ্যমে টেস্ট চালানোর সাথে সাথে কোড কভারেজের রিপোর্টও জেনারেট করবে।

package.json ফাইলের মধ্যে নিম্নলিখিত স্ক্রিপ্ট যোগ করুন:

{
  "scripts": {
    "test": "jasmine",
    "coverage": "nyc --reporter=text --reporter=lcov jasmine"
  }
}

এখানে:

  • nyc --reporter=text --reporter=lcov jasmine: nyc টুলটি Jasmine এর টেস্ট রান করবে এবং টেস্ট শেষে কভারেজ রিপোর্ট তৈরি করবে। --reporter=text কভারেজের টেক্সট আউটপুট দেখাবে এবং --reporter=lcov LCOV ফরম্যাটে কভারেজ রিপোর্ট তৈরি করবে, যা আপনি একটি HTML ফরম্যাটে দেখতে পারবেন।

৪. Code Coverage রিপোর্ট চালানো

এখন, আপনি যদি আপনার কোডের কভারেজ দেখতে চান, তাহলে নিম্নলিখিত কমান্ড চালান:

npm run coverage

এই কমান্ডটি Jasmine টেস্ট চালাবে এবং Istanbul বা nyc ব্যবহার করে কোড কভারেজ রিপোর্ট তৈরি করবে।

আপনি রিপোর্টটি lcov-report ডিরেক্টরিতে দেখতে পারবেন। HTML ফরম্যাটে দেখতে হলে, ব্রাউজারে lcov-report/index.html ফাইলটি খুলুন।


৫. Code Coverage রিপোর্ট বিশ্লেষণ করা

যখন আপনি কোড কভারেজ রিপোর্ট দেখতে পাবেন, তখন বিভিন্ন মেট্রিক্স যেমন statements, branches, functions, lines ইত্যাদি দেখতে পাবেন। এই রিপোর্টটি আপনাকে বলে দেবে:

  • কোন অংশে টেস্ট কম বা একদম নেই
  • কোন ব্রাঞ্চ বা শাখায় টেস্ট করা হয়নি
  • কত শতাংশ কোড টেস্ট করা হয়েছে

Example: JasmineJS এবং nyc এর সাথে Code Coverage

ধরা যাক, আপনার একটি ফাংশন আছে যা দুটি সংখ্যার যোগফল করে:

function add(a, b) {
  return a + b;
}

এখন, আপনি এই ফাংশনের জন্য JasmineJS দিয়ে একটি টেস্ট লিখবেন:

describe("add function", function() {
  it("should add two numbers correctly", function() {
    expect(add(2, 3)).toBe(5);
  });
});

এখন, আপনি যদি code coverage চেক করেন, তাহলে nyc রিপোর্টে দেখতে পাবেন যে ফাংশনটি সঠিকভাবে টেস্ট করা হয়েছে, এবং কোন অপ্রয়োজনীয় কোড অংশ বা কভারেজ নেই।


Code Coverage রিপোর্টের ধরন

  • Statements: মোট কতটি স্টেটমেন্ট টেস্ট হয়েছে
  • Branches: লজিক্যাল ব্রাঞ্চ টেস্ট হয়েছে কিনা
  • Functions: কোডের ফাংশনগুলোর কভারেজ
  • Lines: কোড লাইনের কভারেজ

এই রিপোর্টে, যেগুলি কম কভারেজ বা নষ্ট দেখাবে, তা আপনার টেস্ট স্যুটে আরও টেস্ট যুক্ত করার সংকেত হতে পারে।


সারাংশ

JasmineJS এর সাথে code coverage tools যেমন nyc ইন্টিগ্রেট করা একটি গুরুত্বপূর্ণ পদক্ষেপ। এটি আপনাকে আপনার টেস্টের পূর্ণতা পর্যালোচনা করতে সহায়তা করে এবং জানাতে পারে কোন অংশে টেস্টের ঘাটতি রয়েছে। আপনি nyc বা Istanbul ব্যবহার করে JasmineJS এর সাথে সহজেই কভারেজ রিপোর্ট জেনারেট করতে পারেন। এটি আপনার টেস্ট কভারেজের মান নিশ্চিত করতে সাহায্য করবে এবং নিশ্চিত করবে যে আপনার কোড যথাযথভাবে টেস্ট করা হয়েছে।

Content added By
Promotion

Are you sure to start over?

Loading...